The SATA international organization defines a SATA data link interface which includes, from the bottom to the top in the communication architecture, a physical layer, a link layer, a transport layer, a command layer and an application layer. Sometimes the command layer and the application layer are combined into a single layer, known as a command and application layer or a command/application layer, or simply an application layer. The application layer is responsible for overall ATA command execution, including controlling Command Block Register accesses. The transport layer is responsible for placing control information and data to be transferred between a host and a device in a packet/frame, known as a Frame Information Structure (FIS). The link layer is responsible for taking data from the constructed frames, encoding or decoding each byte using 8b/10b, and inserting control characters such that the 10-bit stream of data may be decoded correctly. The physical layer is responsible for transmitting and receiving the encoded information as a serial data stream on the wire. For more details, readers are referred to “Serial ATA Specification, Rev. 2.5” and “AT Attachment with Packet Interface-6 (ATA/ATAPI-6)”.
FIG. 1 illustrates the data transfer scheme in a SATA system which includes a SATA device to be accessed by a SATA host through a SATA port multiplier. After the SATA host gives a standard ATA command, data is transferred from the command and application layer 100 to the SATA port multiplier first, through the transport layer 102, the link layer 104 and the physical layer 106. The physical layer 106 of the SATA host transfers the data to the physical layer 112 of the SATA port multiplier by a SATA physical layer signal, and in the SATA port multiplier the data is further transferred from the physical layer 112 up to the transport layer 108 through the link layer 110. As is well known, a SATA host is capable of accessing to up to fifteen SATA devices via a SATA port multiplier, and for which the transport layer of the SATA port multiplier will read the PM port field in the FIS in order to determine the target SATA device to receive the data. After determines the target SATA device, the transport layer 108 of the SATA port multiplier further transfers the data through the link layer 110 to the physical layer 112, and the physical layer 112 transfers the data to the physical layer 120 of the SATA device by a physical layer signal. Then, in the SATA device, the data is further transferred to the command and application layer 114 through the link layer 118 and the transport layer 116. As shown in FIG. 1, in a SATA system, the SATA port multiplier and the SATA device both are required to have a respective physical layer for data transfer between the SATA host and the SATA port multiplier, and between the SATA port multiplier and the SATA device, by SATA physical layer signals.
FIG. 2 shows a standard SATA card reader 200 plugged to a SATA host 202, in which for communications over the SATA architecture, the SATA host 202 needs a SATA physical layer circuit 204, and the SATA port multiplier 208 of the card reader 200 also needs a SATA physical layer circuit 210, with a SATA interface 206 therebetween. In the card reader 200, for data transfer between the SATA port multiplier 208 and two SATA devices 216 and 226, the SATA port multiplier 208 further needs two SATA physical layer circuits 212 and 214, and the SATA devices 216 and 226 also need SATA physical layer circuits 220 and 230 respectively. When the SATA host 202 accesses to the SATA device 216 or 226, the data sent out from the SATA physical layer circuit 204 of the SATA host 202 is received by the SATA physical layer circuit 210 of the SATA port multiplier 208 through the SATA interface 206. Then, the SATA port multiplier 208 determines to transfer the data to the SATA device 216 or 226 according to the PM port field in the FIS, and either the SATA physical layer circuit 212 or 214 is selected to receive the data depending on which one of the SATA devices 216 and 226 is determined to be the target SATA device. In the SATA device 216, a SATA controller 218 is used to receive the data through the SATA physical layer circuit 220, and a memory card controller 222 is used to read from or write to a memory card connected to a memory card connecting interface 224 according to the output of the SATA controller 218. Likewise, in the SATA device 226, a SATA controller 228 is used to receive the data through the SATA physical layer circuit 230, and a memory card controller 232 is used to read from or write to a memory card connected to a memory card connecting interface 234 according to the output of the SATA controller 228. As illustrated in FIG. 1, the SATA port multiplier 208 and the SATA devices 216 and 226 all employ a SATA physical layer to transmit and receive data, and thus, as shown in FIG. 2, all input and output performed by the SATA port multiplier 208 rely on the SATA physical layer circuits 210, 212, 214, 220 and 230 to transmit and receive the data. The card reader 200 accommodates two memory cards, and therefore three SATA physical layer circuits 210, 212 and 214 are required in the SATA port multiplier 208 for transmitting and receiving data, and two SATA physical layer circuits 220 and 230 are required in the SATA devices 216 and 226 for transmitting and receiving data. As a result, the card reader 200 has to be equipped with five SATA physical layer circuits 210, 212, 214, 220 and 230. In this manner, for a SATA card reader capable of reading a number n of memory cards, a number 2n+1 of SATA physical layer circuits are required for data transfer.
Therefore, a need exists for a SATA system with reduced SATA physical layer circuits, in order to reduce the manufacturing cost, the power consumption and the hardware size.